package com.javen.util;

import java.text.SimpleDateFormat;

public class CheckTypeUtil {
/*
 *  源码：
 *  public Exception(String message) {
        super(message);
    }
 */
	public static void checkInt(String checkStr,String errorStr) throws Exception{
		
		try{
			Integer.parseInt(checkStr);
		}catch(Exception e){
			throw new Exception(errorStr);
		}
		
	}
	
	public static void checkLong(String checkStr,String errorStr) throws Exception{
		try{
			Long.parseLong(checkStr);
		}catch(Exception e){
			throw new Exception(errorStr);
		}
		
	}
	
	/**
	 * 入参检测类型
	 * String checkStr = "2016-10-24"
	 * String checkStr = "2016-10-24 21:59:06";
	 * 上面两种格式是合法的
	 * @param checkStr
	 * @param errorStr
	 * @throws Exception
	 * 
	 * java中使用SimpleDateFormat类的构造函数SimpleDateFormat(String str)构造格式化日期的格式,
     * 通过format(Date date)方法将指定的日期对象格式化为指定格式的字符串
     * 
     *   SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");   //定义格式化规则
         Date date = new Date();  //Mon Aug 01 15:17:21 CST 2016
       
         System.out.println(sdf.format(date));  //2016-08-01    将日期装换成字符串形式
       
         String stringdate ="2016-08-01";
         System.out.println(sdf.parse(stringdate));  //Mon Aug 01 00:00:00 CST 2016    将字符串装换成日期形式
	 */
	public static void checkDate(String checkStr,String errorStr) throws Exception{
		
		try {
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
			sdf.parse(checkStr);//parse()方法将字符串转换为日期类型，format方法将日期类型转换为字符串类型
		} catch (Exception e) {
			try {
		       SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			   sdf1.parse(checkStr);
		    } catch (Exception e2) {
			   try{
				   SimpleDateFormat sdf2=new SimpleDateFormat("yyyy/MM/dd");
				   sdf2.parse(checkStr); 
			   }catch(Exception e3){
				   try{
					   SimpleDateFormat sdf3=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
					   sdf3.parse(checkStr); 
				   }catch(Exception e4){
					   throw new Exception(errorStr);
				   }
			   }
		    	
		}
		}
	}
}
